1. Field of the Invention
The present invention relates to the field of computer networking. More particularly, the present invention relates to a user-friendly tool or interface for setting expressions via SNMP (Simple Network Management Protocol) on an SNMP agent having an expression management information base (MIB).
2. The Background Art
SNMP (Simple Network Management Protocol) is a protocol used in managing computer networks. It provides a systematic way of monitoring and managing a computer network and has become the standard in network management. The SNMP model of a managed network consists of four types of components: (1) managed nodes, (2) management stations, (3) management information, and (4) a management protocol. The managed nodes can be hosts, routers, bridges, printers, or any other devices capable of communicating status information to the management stations. Management stations monitor and manage the devices on the network. The management information contains information on the components of the network and the management protocol is the format in which this information is communicated to the management system.
FIG. 1 is a block diagram which illustrates an example of a network utilizing the SNMP model. Management station 10 controls a plurality of nodes 12a, 12b, 12c which in the figure include two computers 18a, 18b at nodes 12a, 12b respectively, and a printer 20 at node 12c. In order for an SNMP management station 10 to manage a node directly, the node must be able to run an SNMP agent, which is an SNMP management process normally encoded in software (although a hardware implementation for use with certain nodes is also possible). Almost all computers meet this requirement, as well as some bridges, routers, printers, and similar peripheral devices which are specifically designed for use in a network. In FIG. 1, the agents 14a, 14b running on each of the computers 20a, 20b respectively, would most likely be encoded in software whereas the agent 14c for the printer 20 would most likely be a hardware implementation.
Many networks contain components manufactured by several different companies. In order for the management station to communicate effectively with these varied devices, the nature of the information maintained by the agents must be rigidly specified. SNMP therefore describes the exact information each agent must maintain and the format in which it must be maintained in data structures called management information bases (MIB).
Each SNMP agent maintains a local database of variables that may describe the current and past state of the node to which it is assigned as well as provides instructions to affect the operation of the node. The management of the network is then carried out by the management stations. The management stations have one or more processes that communicate with the SNMP agents through the network by issuing commands and getting responses. One of the advantages of this design is that much of the complexity of the system is located in the management stations, rather than in the SNMP agents, allowing the agents to be as simple as possible to minimize their effect on the nodes on which they are running.
In the SNMP protocol, each SNMP agent may maintain one or more variables that describe the node's state. These variables are also called objects. Related managed objects are grouped together in a data structure called a management information base (MIB). FIG. 2 illustrates two different examples of SNMP agents. The first agent 30 contains a management information base 32. It is also possible to have multiple management information bases within each agent, as seen in the second agent 40, which contains management information bases 36 and 38. In addition, each node on the network may have different types of management information bases. Referring to FIG. 2, the first agent 30 contains both a MIB 32 and an expression MIB 34. An expression MIB is a special type of MIB which is discussed below. The second agent 34 also contains an expression MIB 42 as well as management information bases 36, 38.
The management station communicates with the agents over the network using the SNMP protocol, which allows the management station to query the state of the agent's local objects and modify them if necessary. Therefore, the management station communicates with the management information bases of each agent. There are four SNMP operations defined in version 1 of SNMP. These are "Get", "Get-next", "Set", and "Trap". "Get" retrieves an object instance from the agent. "Get-next" retrieves the next object instance from a table or list within an agent. "Set" sets object instances within an agent and "Trap" informs asynchronously the network management station of some event.
SNMP messages contain two parts: a message header and a protocol data unit. The message header comprises a version number and a community name. The community name serves to define an access environment for a set of network management stations using the community name. Additionally, since devices that do not know the proper community name are precluded from SNMP operations, network managers may also use the community name as a weak form of authentication.
The data portion of an SNMP message contains the specified SNMP operation ("Get", "Get-next", "Set", or "Trap") as well as associated data. FIG. 3 depicts the format for the data, or protocol data unit, portion. The format for a "Get", "Get-next", or "Set" command 50 includes four fields. The first is a request-ID field 52, which associates requests with responses. The next is an error status field 54, which indicates an error and an error type. The next is an error index field 56, which associates the error with a particular variable in the variable bindings. The last is a variable bindings field 58, which comprises the data. Each variable binding associates a particular variable with its current value (except in "Get" and "get-next" requests, where the value is ignored).
The format for a "Trap" command 66 includes six fields. The first is an enterprise field 62, which identifies the type of the object generating the trap. The next is an agent address field 64, which provides the address of the object generating the trap. The next is a generic trap type field 66, which provides the generic trap type. The next field is a specific trap type code 68, which provides the specific trap type. The next field is a time stamp field 70, which provides the amount of time that has elapsed between the last network reinitialization and generation of this trap. The last field is the variable bindings field 72, which provides a list of variables containing interesting information about the trap.
Version 2 of SNMP introduced two new operations: "Inform" and "Get-bulk". "Inform" allows one manager to send trap type information to another manager and request a response. "Get-bulk" allows a manager to retrieve efficiently large blocks of data, such as multiple rows in a table, which would otherwise require the transmission of many small blocks of data. The message format for the data portion of SNMP version 2 commands is depicted in FIG. 4. For "Get", "Get-next", "Inform", "Set", and "Trap" functions, the format 80 comprises five fields. The first field is a PDU type field 82, which identifies the PDU type (get, get-next, etc.). The second field is a request ID field 84, which associates requests with responses. The third field is an error status field 86, which indicates an error and an error type. The fourth field is an error index field 88, which associates the error with a particular variable in the variable bindings. The fifth field is a variable bindings field 90, which associates particular variables with their current values (except for the get and get-next requests, which ignore this value).
For the "Get-bulk" operation, the format 92 includes five fields. The first and second fields are PDU type 94 and request ID 96, respectively, and perform the same functions as in the "Get", "Get-next", "Inform", "Set", and "Trap" format. The third field is a nonrepeaters field 98, which specifies the number of variables in the variable bindings list for which a single lexicographic successor is to be returned. The fourth field is a max-repetitions field 100, which specifies the number of lexicographic successors to be returned for the remaining variables in the variable bindings list. The last field is the variable bindings field 104, which performs the same functions as in the "Get", "Get-next", "Inform", "Set", and "Trap" format.
There are a great number of different possible management information base types in version 2 of SNMP. One type is known as an expression MIB. It is sometime advantageous for a management station to evaluate expressions of the variables contained in the management information bases of each agent. This is generally done for testing purposes to ensure that the network is running properly. For example, a MIB may contain variable A and variable B. In order to test for a certain property it may be necessary to check whether A+B exceeds a certain preset number. For years, this would be performed by the management station occasionally polling and retrieving the MIB of the agent (via the SNMP protocol), receiving the values for A and B, then adding A+B and comparing the result to the preset number. In large systems, however, this frequent and repetitive polling increases network traffic to such an extent as to significantly decrease the overall efficiency of the system.
In order to alleviate this concern, expression management information bases were created. Like a normal MIB, an expression MIB is contained on an agent. However, an expression MIB contains variables which are evaluated expressions of variables contained in another MIB on that agent. The evaluated expressions may also contain constants. For example, a normal MIB on an agent may contain variables A and B. The expression MIB for that agent could then contain one or more variables representing A+B, A-B, A*B, A/B, AB/2, B+A+4 and the like.
In the above example, rather than polling for both A and B, the management station need only poll for the desired variable or variable which express the values it wishes to evaluate (for example, A+B). Evaluating these expressions on the SNMP agent reduces the network traffic as the management station does not have to poll for the individual values of the SNMP objects in the expression.
However, setting up an expression on an agent is cumbersome. In order for a management station to communicate with a node, the data must be split into SNMP set packets for transport. A simple expression like "1+2" can take eight or more separate SNMP set packets before the expression is completely defined. Also, the expressions must be converted from the user-friendly form into a special format that is easily parsable on the agent. The large number of pieces of information needed for each expression is required in order to keep the flexibility which is inherent in the expression MIB. The effect of maintaining this flexibility on the agent is that the complexity of parsing, defining, and verifying the accuracy of expression has been moved from the SNMP agent to the management station or user.
Accordingly, it would be desirable to provide a tool or interface system to assist in parsing, defining, and verifying the accuracy of the expression of an expression MIB.